/*
 * IkaPoint.h
 */

#ifndef IKAPOINT_H_
#define IKAPOINT_H_

namespace atomic {

/**
 *
 */
class IkaPoint {
public:

	/**
	 * Default constructor
	 */
	IkaPoint();

	/**
	 * Constructor by copy
	 */
	IkaPoint(const atomic::IkaPoint &point);

	/**
	 * Full constructor
	 */
	IkaPoint(float x, float y);

	/**
	 * Destructor
	 */
	virtual ~IkaPoint();

	/**
	 * Get the X value
	 * \return x (float)
	 */
	float X() const;

	/**
	 * Get the Y value
	 * \return y (float)
	 */
	float Y() const;

	/**
	 * Set X value
	 * \param x :the new X value (float)
	 */
	void SetX(float x);

	/**
	 * Set Y value
	 * \param y : the new y value(float)
	 */
	void SetY(float y);

	/**
	 * Operator +
	 */
	atomic::IkaPoint& operator+(const atomic::IkaPoint &point);

	/**
	 * Operator =
	 */
	atomic::IkaPoint& operator=(const atomic::IkaPoint &point);


private:

	/**
	 * the X part of the point (float)
	 */
	float myX;

	/**
	 * the Y part of the point (float)
	 */
	float myY;
};

}

#endif /* IKAPOINT_H_ */
